<?php
/**
 * Classe responsavel por gerenciar o carrinho de compras
 * 
 * @author Tiago Santos
 * @version 1.0
 *
 */
class Carrinho {
	private $itens;
	private $vars;
	
	function __construct(){
		$this->carregar();
	}
	
	public function adicionar($produto){
		foreach($this->itens as &$item){
			if($item['codigo'] == $produto['codigo']){
				$item['quantidade'] += $produto['quantidade'];
				$produto = false;
				break;
			}
		}
		if($produto){
			$this->itens[] = $produto;
		}
		asort($this->itens);
		$this->salvar();
		return true;
	}
	
	public function trocaQuantidade($codigo,$qnt){
		foreach($this->itens as $k=>&$item){
			if($item['codigo'] == $codigo){
				if($qnt > 0)
					$item['quantidade'] = $qnt;
				else
					unset($this->itens[$k]);
				$codigo = false;
				$this->salvar();
				break;
			}
		}
		if($codigo)
			return false;
		else
			return true;
	}
	
	public function remover($cod){
		foreach($this->itens as $k=>$item){
			if($item['codigo'] == $cod){
				unset($this->itens[$k]);
				$this->salvar();
				$cod = false;
				break;
			}
		}
		if($cod)
			return false;
		else
			return true;
	}
	
	public function getItens(){
		return $this->itens;
	}
	
	public function getTotalItens(){
		$total = 0;
		foreach($this->itens as $item){
			$total += ($item['quantidade'] * $item['valor']);
		}
		return $total;
	}
	
	public function getPeso(){
		$peso = 0;
		foreach($this->itens as $item){
			$peso += ($item['quantidade'] * $item['peso']);
		}
		return $peso;
	}
	
	public function setFrete($valor){
		$this->vars['frete'] = $valor;
		$this->salvar();
	}
	
	public function getFrete(){
		if(isset($this->vars['frete']))
			return $this->vars['frete'];
		else
			return false;
	}
	
	public function salvar(){
		$_SESSION['itens_carrinho'] = serialize($this->itens);
		$_SESSION['variaveis']		= serialize($this->vars);
	}
	
	public function carregar(){
		if( isset($_SESSION['itens_carrinho']) )
			$this->itens = unserialize($_SESSION['itens_carrinho']);
		else
			$this->itens = array();
		
		if( isset($_SESSION['variaveis']) )
			$this->vars = unserialize($_SESSION['variaveis']);
		else
			$this->vars = array();
	}
	
}
?>